home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-04
/
netprog.zip
/
README
< prev
Wrap
Text File
|
1993-05-11
|
6KB
|
144 lines
This directory tree comprises the source code from
the book "UNIX Network Programming" by W. Richard Stevens,
published by Prentice Hall, 1990.
---------------------------------------------------------------------
LIMITS OF LIABILITY AND DISCLAIMER OF WARRANTY
The author and publisher of the book "UNIX Network Programming"
have used their best efforts in preparing this software.
These efforts include the development, research, and testing
of the theories and programs to determine their effectiveness.
The author and publisher make no warranty of any kind, express
or implied, with regard to these programs or the documentation
contained in the book. The author and publisher shall not be
liable in any event for incidental or consequential damages in
connection with, or arising out of, the furnishing, performance,
or use of these programs.
---------------------------------------------------------------------
As stated in the Preface of the book, the source code was
tested under 4.3BSD on a VAX and AT&T's System V/386 Release 3.2
on a Compaq 386/20. There may be some comments and Makefile rules
for Xenix since I started porting some of the software to Xenix.
However, I found the existing Xenix socket libraries so poor that
I never finished.
To start, check the files "systype.sh" and "systype.h"
in either the "lib" or "lib.s5" directory. These may have to
be modified for your system. Next, do a "make" in either of
these directories to make the library "libnet.a". This library
is required to make most of the other programs (minimally because
the error functions - err_XXX() - are in this library and these
error functions are used by almost every program).
Note that there are a lot of links between files in
different directories. For example, the directories "fd" and "fd.s5"
both use the same Makefile and main programs. Only the files
"sendfile.c" and "recvfile.c" in these directories are different
between 4.3BSD and System V.
The directories are as follows:
asyncio The asynchronous I/O example from Section 6.12.
fd The file descriptor passing example for 4.3BSD from
Section 6.10.
fd.s5 The file descriptor passing example for System V
from Section 7.10.
inettime The Internet time and daytime clients from Section 10.2.
ipc The IPC examples from Chapter 3.
lib The library of common functions for 4.3BSD. These functions
come from all over the book. Specifically:
lib/daemon.c daemon_start() function - Sec. 2.6.
lib/dgsendrecv.c Reliable message send/receive - Sec. 8.4.
lib/error.c Error handling - Appendix A.3.
lib/hosterror.c Sec. A.3.
lib/idpopen.c Sec. 8.3.
lib/lock.c Lock functions for lpr/seqno.c - Sec. 13.3.
lib/netdefs.h Used by lib/XXXopen.c and tftp/netXXX.c.
lib/nspipe.c Named stream pipe function - Sec. 6.9.
lib/pty.c Pseudo tty routines - Sec. 15.4.
lib/readline.c Sec. 6.6.
lib/readn.c Sec. 6.6.
lib/rresvport.c (Not in book; needed for WIN/TCP)
lib/rtt.c Round-trip timing functions - Sec. 8.4.
lib/sigchild.c daemon_start() SIGCLD handler - Sec. 2.6.
lib/spipe.c Stream pipe function - Sec. 6.9.
lib/sppopen.c Sec. 8.3.
lib/tcpopen.c Sec. 8.3.
lib/timer.c Timing functions used in TFTP - App. A.4.
lib/ttymode.c Copy terminal mode - Sec. 15.5.
lib/ttyraw.c Set terminal raw mode - Sec. 15.5.
lib/udpopen.c Sec. 8.3.
lib/writen.c Sec. 6.6.
lib.s5 The library of common functions for System V.
See the list above for the "lib" directory. The differences
are: idpopen.c, sppopen.c, and sigchild.c aren't in "lib.s5"
and "lib.s5" contains semaph.c (the simpler semaphore
operations - Sec. 3.10).
lock The record locking and file locking functions from
Section 3.2.
lpr The 4.3BSD line printer client - Section 13.3.
net The simple client-server examples from Section 6.6.
Also the socket option example from Section 6.11 and
the host entry example from Section 8.2.
net.s5 The simple client-server examples from Section 7.6.
Also contains a program to print all the stream modules
on a given stream, and a program to print all the
TLI "struct t_info" values for your implementation.
nspipe.s5 The named stream pipe example from Section 7.9.
ping The 4.3BSD Internet ping program from Section 11.2.
rcmd The rcmd() function and its rshd server from
Section 14.3. Also the ruserok() function from
Section 9.2.
record The recording example from Sections 15.3 - 15.6.
record.s5 The System V version of the recording example.
reliable The reliable message client and server from Section 8.4.
rlogin The 4.3BSD rlogin client and rlogind server from
Sections 15.11 and 15.12.
rmt The remote tape server from Section 16.4.
rpc.courier/timedate The Xerox Courier RPC example from Section 18.4.
Note that the Makefile will certainly have to be
modified, depending where you have installed the
Courier compiler, library, and include files.
rpc.sun/timedate The Sun RPC example from Section 18.3.
Note that the Makefile will certainly have to be
modified, depending where you have installed the
Sun RPC compiler and library.
select The higher precision timer, using the select system
call, from Section 6.13.
tftp The TFTP client and server from Chapter 12.
xnsecho The XNS IDP echo client from Section 11.3.
Please send me any bug fixes, comments, suggestions, etc.
Richard Stevens
Health Systems International, New Haven, CT
stevens@hsi.com
... { uunet | yale } ! hsi ! stevens